package dao.impl;

import dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import pojo.User;
import util.MyBatisUtil;

import java.util.List;

public class UserDaoImpl implements UserDao {
//    List<User> users=new ArrayList<>();
//    Connection connection=null;
//    PreparedStatement pst=null;
//    ResultSet resultSet=null;

    @Override
    public List<User> findAll(User user) {
//       //定义核心配置文件
//        String resource="mybatis-config.xml";
//
//        //加载配置文件   class.forname 加异常处理
//        try {
//            //流操作
//            InputStream inputStream = Resources.getResourceAsStream(resource);
//            //创建会话工厂对象
//            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//            //创建会话
//             sqlSession = sqlSessionFactory.openSession();
//            //执行数据库操作
//            List<User> users = sqlSession.getMapper(UserDao.class).findAll();
//            return users;
//
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }finally {
//            sqlSession.close();
//        }
        //引入MyBatisUtil工具类
        return MyBatisUtil.getSession().getMapper(UserDao.class).findAll(user);
    }

    @Override
    public int addUser(User user) {
        SqlSession session = MyBatisUtil.getSession();
        int result = session.getMapper(UserDao.class).addUser(user);
        //提交事务 增删改 都要提交
        session.commit();
        return result;
    }
//页面 java代码 映射文件
    @Override
    public User findById(Integer id) {
        return MyBatisUtil.getSession().getMapper(UserDao.class).findById(id);
    }

    @Override
    public int updateUser(User user) {
        SqlSession session = MyBatisUtil.getSession();
        int result = session.getMapper(UserDao.class).updateUser(user);
        //提交事务 增删改 都要提交
        session.commit();
        return result;
    }

    @Override
    public int deleteUserById(Integer id) {
        SqlSession session = MyBatisUtil.getSession();
        int result = session.getMapper(UserDao.class).deleteUserById(id);
        //提交事务 增删改 都要提交
        session.commit();
        return result;
    }
}
